// 原型方法/属性：
// 实例方法/属性：constructor 里面通过 this 挂载的属性或方法；通过等号进行赋值的，也是挂载到实例上面的
// 静态方法/属性：

class Person {
  constructor(name, age) {
    // this => 构造函数中的 this 就是就是实例对象！
    this.name = name
    this.age = age
    this.show = function () {
      console.log(1)
    }
    // #1
    /* this.state = {
      age: 88,
    } */
  }
  // 通过赋值的形式去造出来的是挂载到实例上面的，相当于 #1 处的代码
  state = {
    age: 88,
  }
  // 实例方法
  handleClick = () => {}

  // 原型方法，挂载到原型上面的
  render() {
    console.log('render')
  }

  // 用 static 修饰的是静态，类似 Person.height
  static height = 18
  static test() {
    console.log('test')
  }
}
// 静态
// Person.height = 180
const p1 = new Person('ifer', 18)
const p2 = new Person('ifer', 18)
// console.log(p1.show === p2.show) // false
// console.log(p1.render === p2.render) // true
// console.log(p1.state === p2.state) // false
// console.log(p1.handleClick === p2.handleClick) // false
console.log(Person.height)
Person.test()
